package src;

/**
 * The Expression interface represents an expression.
 * An Expression can be evaluated, derived and return its last operation symbol.
 *
 * @author Intro111 Staff
 */
 
 //this is the third change//

public interface Expression {
    /**
     * Get the last operation symbol
     *
     * @return String that represents the last operation
     */
    public String getLastOperationSymbol();

    /**
     * Evaluate expression value and return the result
     *
     * @return double that represents the evaluation result of the expression
     */
    public double evaluate();

    /**
     * Derive the expression by a variable.
     *
     * @param var the variable to derive by
     * @return Expression that is the derivative by var
     */

    public Expression derivative(Variable var);
}
